#include "StdAfx.h"
#include "FactoryCarril.h"

FactoryCarril::FactoryCarril(void)
{
}

Carril* FactoryCarril::getCarrilInstance(NodoXML* nodoCarril,Escenario* escenario)
{
	Carril *carril=new Carril();
	

	carril->SetId(nodoCarril->getAttribute("id"));
	String idTextFondo = nodoCarril->getAttribute("idTextura"); // textura obtenida localmente
	carril->SetFondo(escenario->GetTextura(idTextFondo));
	
	NodoXML nodoListadoPuntos = nodoCarril->getChildrenList()[0];
	vector<NodoXML> listadoDePuntos = nodoListadoPuntos.getChildrenList();
	vector<NodoXML>::iterator it;

	vector<Punto*> listaDePuntos;

	for(it=listadoDePuntos.begin(); it<listadoDePuntos.end(); it++)
	{
		Punto* punto= new Punto();
		punto->SetId(it->getAttribute("id").c_str());
		punto ->setPosX(atoi(it->getChildrenList()[0].getAttribute("x").c_str()));
		punto ->setPosY(atoi(it->getChildrenList()[0].getAttribute("y").c_str()));

		/*punto ->setPosX(atoi(it->getAttribute("x").c_str()));
		punto ->setPosY(atoi(it->getAttribute("y").c_str()));*/

		//agrego el punto a la lista
		listaDePuntos.push_back(punto);
		
	}

	carril->setListaDePuntos(listaDePuntos);

	return carril;
}